package TableModels;

import Entities.HdChamados;
import Util.Constantes;
import Util.StatusChamado;
import java.text.SimpleDateFormat;
import java.util.List;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Ferrari
 */
public final class ChamadosUsersTableModel {
    private static DefaultTableModel model;

    private ChamadosUsersTableModel() {
    }
    
    public static void init(){
        model = new DefaultTableModel();
        model.setColumnCount(6);
        String[] colunas = new String[]{
            Constantes.COLUNA_CODIGO,
            Constantes.COLUNA_CO_USER,
            Constantes.COLUNA_STATUS,
            Constantes.COLUNA_EQUIPAMENTO,
            Constantes.COLUNA_DT_CRIACAO_CHAMADO,
            Constantes.COLUNA_PRIORIDADE};
        model.setColumnIdentifiers(colunas);
    }
    
    private static void addChamado(HdChamados chamado){
        SimpleDateFormat sdf = new SimpleDateFormat(Constantes.FORMATO_DATA);
        String []  linha = new String[]{
            chamado.getCoChamado().toString(),
            chamado.getCoUserResp().getNmUser(),
            StatusChamado.getStatusByCod(chamado.getStChamado()), 
            chamado.getCoEquipamento().getDeEquipamento(), 
            sdf.format(chamado.getDtCriacaoChamado()), 
            chamado.getCoUserResp().getCoSetorUser().getCoPrioridadeSetor().toString()};
        
        getModel().addRow(linha);
    }
    
    public static DefaultTableModel addAllChamados(List<HdChamados> listaChamados){
        limpaTabela();
        try{
            for (HdChamados hdChamados : listaChamados) {
                addChamado(hdChamados);
            }
            return getModel();
        }catch(Exception e){
            return getModel();
        }
    }
    
    public static void limpaTabela(){
        getModel().setRowCount(0);
    }
    
    public static DefaultTableModel getModel() {
        if (model == null) {
            init();
        }
        return model;
    }
}
